package vue;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

import vue.eleve.JPanAffStageEleve;
import vue.eleve.JPanAjoutEleve;
import vue.eleve.JPanModifierEleve;
import vue.eleve.JPanSupprimerEleve;
import vue.help.JPanHelpPropos;
import vue.stage.JPanAffStage;
import vue.stage.JPanAjoutStage;
import vue.stage.JPanModifStage;
import vue.stage.JPanSuppStage;
import configuration.Constante;

/**
 * Fichier permettant de gerer la navigation par la barre de menu.
 */
public class GestionNavigation implements ActionListener{

	@Override
	public void actionPerformed(ActionEvent actionEvent) {
		if (actionEvent.getSource() instanceof JMenuItem) {
			// ActionListener du MenuItem
			JMenuItem itemMenu = (JMenuItem) actionEvent.getSource();
			
			// TODO Switch !!!!
			// Menu Fichier
			if (Constante.MENU_FICHIER_QUITTER.toString().equals(itemMenu.getName())){
				MenuControle.getF().setVisible(false);
				MenuControle.getF().dispose();
			}
			
			// Menu STAGE
			else if (Constante.MENU_STAGE_AJOUT.toString().equals(itemMenu.getName())){
				MenuControle.afficherPan(new JPanAjoutStage("Ajout d'un stage"));
			}else if (Constante.MENU_STAGE_SUPP.toString().equals(itemMenu.getName())){
				MenuControle.afficherPan(new JPanSuppStage("Suppression d'un stage"));
			}else if (Constante.MENU_STAGE_AFF.toString().equals(itemMenu.getName())){
				MenuControle.afficherPan(new JPanAffStage("Afficher un stage"));
			}else if (Constante.MENU_STAGE_MODIF.toString().equals(itemMenu.getName())){
				MenuControle.afficherPan(new JPanModifStage("Modifier un stage"));
			}
			
			// Menu Eleve
			else if (Constante.MENU_ELEVE_AJOUT.toString().equals(itemMenu.getName())){
				MenuControle.afficherPan(new JPanAjoutEleve("Ajout d'un eleve"));
			}else if (Constante.MENU_ELEVE_MODIF.toString().equals(itemMenu.getName())){
				MenuControle.afficherPan(new JPanModifierEleve("Modifier un eleve"));
			}else if (Constante.MENU_STAGE_AFF_ELEVE.toString().equals(itemMenu.getName())){
				MenuControle.afficherPan(new JPanAffStageEleve("Afficher liste stage"));
			}else if (Constante.MENU_ELEVE_SUPPRIMER.toString().equals(itemMenu.getName())){
				MenuControle.afficherPan(new JPanSupprimerEleve("Supprimer un eleve"));
			}
			
			// Menu Note
			else if (Constante.MENU_NOTE_AJOUT.toString().equals(itemMenu.getName())){
				MenuControle.afficherPan(new JPanel());
			}else if (Constante.MENU_NOTE_MODIF.toString().equals(itemMenu.getName())){
				MenuControle.afficherPan(new JPanel());
			}else if (Constante.MENU_NOTE_AFF_CLASS.toString().equals(itemMenu.getName())){
				MenuControle.afficherPan(new JPanel());
			}else if (Constante.MENU_NOTE_SUPPRIMER.toString().equals(itemMenu.getName())){
				MenuControle.afficherPan(new JPanel());
			}
			
			// Menu Affectation
			else if (Constante.MENU_AFFECT_AJOUT.toString().equals(itemMenu.getName())){
				MenuControle.afficherPan(new JPanel());
			}else if (Constante.MENU_AFFECT_MODIF.toString().equals(itemMenu.getName())){
				MenuControle.afficherPan(new JPanel());
			}else if (Constante.MENU_AFFECT_ELEVE.toString().equals(itemMenu.getName())){
				MenuControle.afficherPan(new JPanel());
			}else if (Constante.MENU_AFFECT_SUPPRIMER.toString().equals(itemMenu.getName())){
				MenuControle.afficherPan(new JPanel());
			}
			
			// Menu Grade
			else if (Constante.MENU_GRADE_AFF.toString().equals(itemMenu.getName())){
				MenuControle.afficherPan(new JPanel());
			}
			
			// Menu Help
			else if (Constante.MENU_HELP_A_PROPOS.toString().equals(itemMenu.getName())){
				JOptionPane.showConfirmDialog(
						MenuControle.getF(), new JPanHelpPropos(),"A Propos",JOptionPane.CLOSED_OPTION);
			}
		}
	}
}